<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of Cliente
 *
 * @author Jose Tejada
 */
class ClienteDAO implements IFEntityDAO {

    private static $tbCliente = NULL;
    private static $asAllFields = array( "*" );

    public static function traerPorId( $iId ) {
        $cb = NULL;
        if ( self::$tbCliente == NULL ) {
            self::$tbCliente = Tablas::getTbCliente();
        }
//        $tb = new TbCliente();
        try {
            if ( $iId != NULL && !empty( $iId ) ) {
                $result = ManejoBD::retornarRegistro(
                                self::$tbCliente->getNombre()
                                , self::$asAllFields
                                , self::$tbCliente->getCIdCliente() . "=" . $iId . " AND activo=1"
                );
                if ( !is_null( $result ) && count( $result ) > 0 ) {
                    $cb = new ClienteBean(
                                    $result[ 0 ][ self::$tbCliente->getCIdCliente() ],
                                    $result[ 0 ][ self::$tbCliente->getCNombre() ],
                                    $result[ 0 ][ self::$tbCliente->getCApPaterno() ],
                                    $result[ 0 ][ self::$tbCliente->getCApMaterno() ],
                                    $result[ 0 ][ self::$tbCliente->getCFechaNac() ],
                                    $result[ 0 ][ self::$tbCliente->getCDni() ],
                                    $result[ 0 ][ self::$tbCliente->getCTlfFijo() ],
                                    $result[ 0 ][ self::$tbCliente->getCTlfCelular() ],
                                    $result[ 0 ][ self::$tbCliente->getCSexo() ],
                                    $result[ 0 ][ self::$tbCliente->getCEmail() ],
                                    $result[ 0 ][ self::$tbCliente->getCUsername() ],
                                    $result[ 0 ][ self::$tbCliente->getCPassword() ],
                                    $result[ 0 ][ self::$tbCliente->getCFoto() ],
                                    $result[ 0 ][ self::$tbCliente->getCFechaRegistro() ],
                                    $result[ 0 ][ self::$tbCliente->getCActivo() ]
                    );
                }
            }
        } catch ( Exception $e ) {
            error_log( $e->getMessage(), 3, "errores.log" );
            throw $e;
        }
        return $cb;
    }

    public static function traerTodos() {
        $result = NULL;
        $iNumRegistros = 0;
        $lstCliBean = Array( );
        if ( is_null( self::$tbCliente ) ) {
            self::$tbCliente = Tablas::getTbCliente();
        }

        try {
            $result = ManejoBD::retornarRegistro(
                            self::$tbCliente->getNombre(), self::$asAllFields, "activo=1" );
            if ( !is_null( $result ) && count( $result ) > 0 ) {
                $iNumRegistros = count( $result );
                for ( $i = 0; $i < $iNumRegistros; $i++ ) {
//                    $tb = new TbCliente();
                    $cb = new ClienteBean(
                                    $result[ $i ][ self::$tbCliente->getCIdCliente() ],
                                    $result[ $i ][ self::$tbCliente->getCNombre() ],
                                    $result[ $i ][ self::$tbCliente->getCApPaterno() ],
                                    $result[ $i ][ self::$tbCliente->getCApMaterno() ],
                                    $result[ $i ][ self::$tbCliente->getCFechaNac() ],
                                    $result[ $i ][ self::$tbCliente->getCDni() ],
                                    $result[ $i ][ self::$tbCliente->getCTlfFijo() ],
                                    $result[ $i ][ self::$tbCliente->getCTlfCelular() ],
                                    $result[ $i ][ self::$tbCliente->getCSexo() ],
                                    $result[ $i ][ self::$tbCliente->getCEmail() ],
                                    $result[ $i ][ self::$tbCliente->getCUsername() ],
                                    $result[ $i ][ self::$tbCliente->getCPassword() ],
                                    $result[ $i ][ self::$tbCliente->getCFoto() ],
                                    $result[ $i ][ self::$tbCliente->getCFechaRegistro() ],
                                    $result[ $i ][ self::$tbCliente->getCActivo() ]
                    );
                    $lstCliBean[ $i ] = $cb;
                }
            }
        } catch ( Exception $e ) {
            error_log( $e->getMessage(), 3, "errores.log" );
            throw $e;
        }
        return $lstCliBean;
    }

    public static function insertar( EntityBean $clienteBean ) {
        $blResp = FALSE;
        if ( is_null( self::$tbCliente ) ) {
            self::$tbCliente = Tablas::getTbCliente();
        }

        try {
            if ( !is_null( $clienteBean ) ) {
//            $t = new TbCliente();
                $blResp = ManejoBD::insertarDatos(
                                self::$tbCliente->getNombre()
                                , self::$tbCliente->getTodosCampos()
                                , $clienteBean->getTodosValores()
                );
            }
        } catch ( Exception $e ) {
            error_log( $e->getMessage(), 3, "errores.log" );
            throw $e;
        }
        return $blResp;
    }

    public static function actualizar( EntityBean $clienteBean, $sCondicion ) {
        $blResp = FALSE;
        if ( is_null( self::$tbCliente ) ) {
            self::$tbCliente = Tablas::getTbCliente();
        }

        try {
            if ( !is_null( $clienteBean ) ) {
//            $t = new TbCliente();
                $blResp = ManejoBD::actualizarDatos(
                                self::$tbCliente->getNombre()
                                , self::$tbCliente->getTodosCampos()
                                , $clienteBean->getTodosValores()
                                , $sCondicion
                );
            }
        } catch ( Exception $e ) {
            error_log( $e->getMessage(), 3, "errores.log" );
            throw $e;
        }
        return $blResp;
    }

    public static function eliminarPorId( EntityBean $clienteBean ) {
        $blResp = FALSE;
        if ( is_null( self::$tbCliente ) ) {
            self::$tbCliente = Tablas::getTbCliente();
        }

        try {
            if ( !is_null( $clienteBean ) ) {
//            $t = new TbCliente();
                $blResp = ManejoBD::eliminarRegistro(
                                self::$tbCliente->getNombre()
                                , self::$tbCliente->getCIdCliente() . "=" . $clienteBean->getIdCliente() );
            }
        } catch ( Exception $e ) {
            error_log( $e->getMessage(), 3, "errores.log" );
            throw $e;
        }
        return $blResp;
    }

}

?>
